BEGIN SCRIPT screws
-- purpose:  there are 12 screws along the circumference of the balance wheel
-- the screw head and shaft is built with cylinders
-- the tip of the screw with a cone
-- the screw is created in the origin and moved to its final position

LOOP FOR (I,1,12,1)

SET VALUE (NEW_GROUP_NR)

CREATE OBJECT(O1, CYLINDER, 0, 0, -0.03, 0, 0, 0, 0.02) -- head
CREATE OBJECT(O2, CYLINDER, 0, 0, -0.02, 0, 0, 0.03, 0.01) -- shaft (overlapping head)
CREATE OBJECT(O3, CONE, 0, 0, 0.035, 0, 0, 0, 0.01, 0, 0.01) -- tip

SET PROPERTY (O1, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O2, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O3, GROUP_NR, LAST_GROUP_NR)

CREATE LINK (K1, NORMAL, O1, O2, -0.01, 0, -0.02)
CREATE LINK (K2, NORMAL, O1, O2, 0.01, 0, -0.02)
CREATE LINK (K3, NORMAL, O1, O2, 0, 0, 0.02)
CREATE LINK (K4, NORMAL, O2, O3, -0.01, 0, 0.03)
CREATE LINK (K5, NORMAL, O2, O3, 0.01, 0, 0.03)
CREATE LINK (K6, NORMAL, O2, O3, 0, 0, 0.04)

SET GROUP_PROPERTY (O1, DENSITY, 7.8)
SET GROUP_PROPERTY (O1, INTERACT_MODE, NO_INTERACTION)

-- get an object reference for the ring
DESELECT ALL
SELECT OBJECT (POINT, 0, 0.3, 0) -- select the ring
SET VALUE (O4 = SELECTION) -- reference object number (ring)

-- rotate and translate the screw to its radial position
ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 1.570796327, 0) -- rotate 90 = Pi/2
TRANSLATE OBJECTGROUP(O1, RELATIVE, 0.318, 0, 0) -- move to 3 o'clock

-- rotate each screw with an individual angle around the Z-axis
-- -10 = -0.174532925 rad
DO IF (I==1)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, -0.174532925)
END IF
DO IF (I==2)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, -3*0.174532925)
END IF
DO IF (I==3)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, -5*0.174532925)
END IF
DO IF (I==4)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, -7*0.174532925)
END IF
DO IF (I==5)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, -12*0.174532925)
END IF
DO IF (I==6)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, -15*0.174532925)
END IF
DO IF (I==7)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, 17*0.174532925)
END IF
DO IF (I==8)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, 15*0.174532925)
END IF
DO IF (I==9)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, 13*0.174532925)
END IF
DO IF (I==10)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, 11*0.174532925)
END IF
DO IF (I==11)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, 6*0.174532925)
END IF
DO IF (I==12)
  ROTATE OBJECTGROUP(O1, 0, 0, 0, 0, 0, 3*0.174532925)
END IF

-- connect screw-shaft on ring with 3 Links
CREATE ELEMENT (E1, POINT, 0, 0.009, -0.01) -- E1 = Link Pos. in Nullpos. of obj. 'shaft'
MOVE ELEMENT (E1, MOVE_MATRIX, O2) -- E1 = Link Pos. in global Pos. of obj. 'shaft'
CREATE LINK (K1, NORMAL, O2, O4, E1) -- create Link at Pos. E1

CREATE ELEMENT (E2, POINT, 0, -0.009, -0.01) 
MOVE ELEMENT (E2, MOVE_MATRIX, O2)
CREATE LINK (K2, NORMAL, O2, O4, E2)

CREATE ELEMENT (E3, POINT, 0, 0, 0.024)
MOVE ELEMENT (E3, MOVE_MATRIX, O2)
CREATE LINK (K3, NORMAL, O2, O4, E3)

END FOR
-- end of script